SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

/****** Objeto:  procedimiento almacenado dbo.wp_get_accesos    fecha de la secuencia de comandos: 27/08/2003 16:28:38  ******/
CREATE     PROCEDURE dbo.wp_get_accesos 
@nombre_grupo _codigo
AS

--Busca los programas que no pertenezcan al grupo
select *
from wad_programas
where (upper(tp_programa) ='A'
	or upper(tp_programa) ='C'
	or upper(tp_programa) ='L'
	or upper(tp_programa) ='P')
	and not exists(
		select *
		from wld_acceso_programas
		where cd_grupo_operadores =@nombre_grupo
			and nm_programa=wad_programas.nm_programa
		)

-- Devuelve los accesos registrados y los faltantes
if @@rowcount >0
	select	@nombre_grupo as cd_grupo_operadores,
		PG.nm_programa,
		PG.de_programa,
		isnull(AP.st_permiso_ing,1) as st_permiso_ing,
		case upper(PG.tp_programa)
			when 'C' then isnull(AP.st_permiso_alta,0)
			when 'L' then isnull(AP.st_permiso_alta,0)
			else isnull(AP.st_permiso_alta,1)
		end as st_permiso_alta,
		case upper(PG.tp_programa)
			when 'C' then isnull(AP.st_permiso_baja,0)
			when 'L' then isnull(AP.st_permiso_baja,0)
			else isnull(AP.st_permiso_baja,1)
		end as st_permiso_baja,
		case upper(PG.tp_programa)
			when 'C' then isnull(AP.st_permiso_modif,0)
			when 'L' then isnull(AP.st_permiso_modif,0)
			when 'P' then isnull(AP.st_permiso_modif,0)
			else isnull(AP.st_permiso_modif,1)
		end as st_permiso_modif
	from wad_programas PG
		left join wld_acceso_programas AP on AP.cd_grupo_operadores =@nombre_grupo and AP.nm_programa =PG.nm_programa
	where (upper(PG.tp_programa) ='A'
		or upper(PG.tp_programa) ='C'
		or upper(PG.tp_programa) ='L'
		or upper(PG.tp_programa) ='P')
	order by PG.nm_programa



GO
